package com.baijiayun.live.ui.menu.rightmenu;

import com.baijiayun.live.ui.base.BasePresenter;
import com.baijiayun.live.ui.base.BaseView;
import com.baijiayun.livecore.models.LPAdminAuthModel;
import com.baijiayun.liveuibase.widgets.toolbar.ShapeChangeData;

/**
 * Created by Shubo on 2017/2/15.
 */

public interface RightMenuContract {

    int STUDENT_SPEAK_APPLY_NONE = 0;
    int STUDENT_SPEAK_APPLY_APPLYING = 1;
    int STUDENT_SPEAK_APPLY_SPEAKING = 2;

    interface View extends BaseView<Presenter> {

        void showSpeakClosedByTeacher(boolean isSmallGroup);

        void showSpeakClosedByServer();

        void showForceSpeakDenyByServer();

        void showSpeakApplyCountDown(int countDownTime, int total);

        void showSpeakApplyAgreed(boolean isEnableDrawing);

        void showSpeakApplyDisagreed();

        void showSpeakApplyCanceled();

        void showTeacherMenu(boolean isGroupAdmin);

        void showStudentMenu();

        void showAssistantMenu(LPAdminAuthModel lpAdminAuthModel);

        void showForbiddenHand();

        void showNotForbiddenHand();

        void hidePPTDrawBtn();

        void showPPTDrawBtn();

        void showHandUpError();

        void showHandUpForbid();

        void showCantDraw();

        void showCantDrawCauseClassNotStart();

        void showWaitingTeacherAgree();

        void showAutoSpeak(boolean isDrawingEnable);

        void showForceSpeak(boolean isDrawingEnable);

        void hideUserList();

        void hideSpeakApply();

        void showHandUpTimeout();

        void setAudition();

        void showDrawDeny();

        void hideTimer();
    }

    interface Presenter extends BasePresenter {
        void visitOnlineUser();

        void changeDrawing(ShapeChangeData shapeChangeData);

        void changeDrawingStatus(ShapeChangeData shapeChangeData);

        void managePPT();

        void speakApply();

        void onSpeakInvite(int confirm);

        boolean isWaitingRecordOpen();

        void showTimer();
    }
}
